#include<bits/stdc++.h>
#define mid (l+r>>1)
#define rs (k<<1|1)
#define ls (k<<1)
using namespace std;
using ll=long long;
const int N=1e5+5;
int testid;
int n,q,m,mm;
struct edge{
    int l,r,x;
    int op;
    edge(){}
    edge(int l,int r,int x,int op):l(l),r(r),x(x),op(op){}
}e[N][2];
vector<int> lis,is;
vector<edge> ed[N<<1];
struct node{
    int lz;
    ll s;
}t[N<<3];
void pushup(int k,int l,int r){
    if(t[k].lz)t[k].s=is[r+1]-is[l];
    else t[k].s=t[ls].s+t[rs].s;
}
void update(int l,int r,int k,int x,int y,int d){
    if(x<=l&&r<=y){
        t[k].lz+=d;
        pushup(k,l,r);
        return;
    }
    if(x<=mid)update(l,mid,ls,x,y,d);
    if(y>mid)update(mid+1,r,rs,x,y,d);
    pushup(k,l,r);
}
int main(){
    freopen("dierti.in","r",stdin);
    freopen("dierti.out","w",stdout);
    cin>>testid;
    cin>>n>>q;
    for(int i=1;i<=n;++i){
        int xa,xb,ya,yb;
        cin>>xa>>ya>>xb>>yb;
        is.push_back(ya);
        is.push_back(yb);
        lis.push_back(xa);
        lis.push_back(xb);
        e[i][0]=edge(ya,yb,xa,1);
        e[i][1]=edge(ya,yb,xb,-1);
    }
    sort(lis.begin(),lis.end());
    lis.erase(unique(lis.begin(),lis.end()),lis.end());
    sort(is.begin(),is.end());
    is.erase(unique(is.begin(),is.end()),is.end());
    for(int i=1;i<=n;++i){
        e[i][0].x=lower_bound(lis.begin(),lis.end(),e[i][0].x)-lis.begin();
        e[i][1].x=lower_bound(lis.begin(),lis.end(),e[i][1].x)-lis.begin();
        e[i][0].l=lower_bound(is.begin(),is.end(),e[i][0].l)-is.begin();
        e[i][0].r=lower_bound(is.begin(),is.end(),e[i][0].r)-is.begin()-1;
        e[i][1].l=e[i][0].l;
        e[i][1].r=e[i][0].r;
    }
    mm=lis.size();
    m=is.size();
    while(q--){
        int l,r;
        cin>>l>>r;
        for(int i=l;i<=r;++i){
            ed[e[i][0].x].push_back(e[i][0]);
            ed[e[i][1].x].push_back(e[i][1]);
        }
        ll ans=0;
        for(int i=0;i<mm;++i){
            if(i){
                //cout<<t[1].s<<' '<<lis[i]-lis[i-1]<<'\n';
                ans+=t[1].s*(lis[i]-lis[i-1]);
            }
            for(auto it:ed[i]){
                //cout<<it.l<<' '<<it.r<<' '<<it.op<<'\n';
                update(0,m-1,1,it.l,it.r,it.op);
            }
            ed[i].clear();
        }
        cout<<ans<<'\n';
    }
    return 0;
}
